package interfaces.gui;

/**
 * Window with console for shell.
 * <br/>
 * Created: 11.10.11
 *
 * @author Martin Štulc (<a href="mailto:martin.stulc@gmail.com">martin.stulc@gmail.com</a>)
 * @version 1.0
 */
public interface IShellWindow
{
    /**
     * Writes some message into shell window.
     *
     * @param message the message
     */
    void writeln(String message);

    /**
     * Reads from user next command.
     * WARNING: Can be the blocking operation.
     *
     * @param moveToHistoryPane determines, if the command should move to the history pane
     * @return the next command from user
     */
    String readln(boolean moveToHistoryPane);

    /**
     * Clears the last entered command.
     */
    void clearCommand();

    /**
     * Clears the commands history.
     */
    void clearHistory();

    /**
     * Closes the shell window.
     */
    void close();
}
